Excel SUMPRODUCT 和动态文本条件

Excel SUMPRODUCT and dynamic text conditions

我正在尝试对具有特定动态条件的行进行求和。我有这样的行:

A只能是一个值,K可以有多个或值。最后要求和M。

我尝试使用适用于 A 列但不适用于 K 列的 SUMPRODUCT()。我正在寻找的是:

=SUMPRODUCT(--(!$A:$A000="AA")*--(!$K:$K000="AA" OR "BB")*$M:$M000)

我知道我可以执行 ="AA" 和 ="BB",但我需要“AA”和“BB”基于其他单元格是动态的。而且参数的数量是不同的。我试过 {"AA";"BB"} 但我知道这不会起作用,因为匹配需要在同一行。

完全可以实现吗?

非常感谢!

将 SUMIFS 与 SUMPRODUCT 包装器一起使用:

=SUMPRODUCT(SUMIFS($M:$M000,$A:$A000,"AA",$K:$K000,{"AA","BB"}))
=SUMPRODUCT(($A:$A000="AA")*(($K:$K000="AA")+($K:$K000="BB"))*$M:$M000)

注意:

  • 因为你是 multiplying/adding 数组,所以没有必要包含双一元的
  • 我不知道为什么你的示例公式中有一个 !
  • 我们向return TRUE;FALSEOR 数组添加。

您的评论仍然没有清楚地解释您正在动态化的内容。

但是要为列 K 创建动态 OR,包括测试列 A 和汇总列 M,您可以执行以下操作:

对于 K 列,我们假设您可能的 OR 分别输入范围 F2:F10

=SUMPRODUCT(MMULT(--($K:$K000=TRANSPOSE($F:$F)),--(ROW($F:$F)>0))*($A:$A000="AAA")*$M:$M000)

矩阵乘法将产生一列 19,999 个条目,如果 OR 中的任何一个匹配,则为 1,如果不匹配,则为 0

参见如何在Excel中的数组公式中进行逐行求和? 有关此应用程序中 MMULT 功能的信息。

在上面的公式中,OR范围(F2:F10)中的“空白”也将匹配K列中的空白条目。因此可以想象,如果K中有一个空白并且F 和 A 列中的 AAA 以及 M 列中的值表明错误结果可能 returned.

为避免这种可能性,我们可以使用动态公式来调整我们输入 OR 值的列 F 的大小:

=INDEX($F:$F,1):INDEX($F:$F,COUNTA($F:$F))

将 return 仅 F 列中非空白的值(假设该列中没有空白)

所以:

=SUMPRODUCT(MMULT(--($K:$K000=TRANSPOSE(INDEX($F:$F,1):INDEX($F:$F,COUNTA($F:$F)))),--(ROW(INDEX($F:$F,1):INDEX($F:$F,COUNTA($F:$F)))>0))*($A:$A000="AAA")*$M:$M000)

鉴于此数据:

最后一个公式将 return 的值为 5M2,M3,M7 的总和)